FIG. 1 shows a typical memory access control system having a multicast transfer function according to a related technique. The memory access control system has nodes 1 (1-x, x=1 to A: A is the number of nodes) and a network 2.
A node 1 is a unit managed by software. Each of the nodes 1 (1-x, x=1 to A) has an arbitrary number of memory control units 11, an arbitrary number of memories 12 and a software execution unit 13 (13-x, x=1 to A). The memory control units 11 and the memories 12 of all the nodes 1 are memory control units 11-i and memories 12-i (i=1 to n: n is an arbitrary number).
The memory control unit 11 (11-i, i=1 to n) performs access control of the memory 12 (12-i, i=1 to n) in the node 1 (1-x, x=1 to A). The memory 12 (12-i, i=1 to n) is a distributed memory managed by the memory control unit 11 (11-i, i=1 to n). Here, the memory control units 11 (11-i, i=1 to n) and the memories 12 (12-i, i=1 to n) have one-to-one correspondence with each other. The software execution unit 13 (13-x, x=1 to A) executes software that manages the node 1 (1-x, x=1 to A).
The network 2 includes a communication line and network devices for connecting the memory control units 11 (11-i, i=1 to n) with each other, irrespective of the nodes 1 (1-x, x=1 to A).
Each of the memory control units 11 (11-i, i=1 to n) includes a data transmission unit 111 (111-i, i=1 to n), a data reception unit 112 (112-i, i=1 to n), a reply generation unit 113 (113-i, i=1 to n), a reply reception unit 114 (114-i, i=1 to n), a reply counter 115 (115-i, i=1 to n) and an error information register 116 (116-i, i=1 to n).
The memory control unit 11-1 in the node 1-1 is a data transfer source of multicast transfer. The data transmission unit 111-1 reads out a data from the memory 12-1, which is under the memory control unit 11-1, and transmits the data to the network 2. The network 2 copies the multicast transfer data and transfers the multicast transfer data to the memory control units 11-2 to 11-n which are data transfer destinations in the nodes 1-1 to 1-A.
Moreover, when the data transfer is not correctly performed due to network failure and the like, the network 2 adds error information to the multicast transfer data and transfers the data to the memory control units 11-2 to 11-n. The case where the data transfer is not correctly performed due to network failure and the like includes a case where validity of data cannot be guaranteed. The memory control unit 11-1 as the data transfer source of the multicast transfer or the network 2 transferring data transmits the multicast transfer data by adding the error information for notification of trouble caused in the memory control unit 11-1 or the network 2 or on the communication path. For example, a case where errors of two bits or more are detected in ECC (Error Correcting Code) is considered. Note that the case where the data transfer is not correctly performed due to network failure and the like does not include a case where the memory control units 11-2 to 11-n break down.
The memory control units 11-2 to 11-n in the nodes 1-1 to 1-A are data transfer destinations. The data reception units 112-2 to 112-n respectively receive the multicast transfer data. Then, the data reception units 112-2 to 112-n respectively store the received data in the memories 12-2 to 12-n under the memory control units 11-2 to 11-n and send reply generation requests to the reply generation units 113-2 to 113-n. In response to the reply generation requests, the reply generation units 113-2 to 113-n respectively return replies to the memory control unit 11-1 which is the data transfer source.
The reply reception unit 114-1 of the memory control unit 11-1 receives the replies. The reply reception unit 114-1 increments (“+1”) the reply counter 115-1 each time it receives the reply. Moreover, if error information is added to the multicast transfer data, the reply reception unit 114-1 registers the error information in the error information register 116-1.
As described above, it is necessary for the data transfer destination to return a reply to the data transfer source in the case of the memory access control system having the multicast transfer function shown in FIG. 1.
As an example of the memory access control system having the multicast transfer function, Japanese Patent Publication JP-H08-329030A (Patent Document 1) discloses processor communication control in a multiprocessor system. The memory access control system having the multicast transfer function is provided with a processor for transmitting data by multicast transfer, a processor as a data transfer destination, and a reply communication transmission control unit in the data transfer destination for returning a reply to a data transfer source. The processor that has received a multicast transfer data needs to return a reply to the data transfer source.
This related technique is disadvantageous in the following problems.
The first problem is that a great number of replies are caused in a case of a large-scale configuration where there are lots of destinations of the multicast transfer. This imposes heavy load on the transfer path, which deteriorates communication performance. Moreover, the processor as the data transfer source that has transmitted the multicast transfer data needs to process the great number of replies received, which can deteriorate command processing performance of the processor itself.
The second problem is that software needs to confirm completion of the multicast transfer each time the multicast transfer is performed. As mentioned above, the memory control unit has the reply counter for counting the number of received replies concerning multicast transfer. The software reads the reply counter of the data transfer source each time the multicast transfer is performed and thereby recognizes completion of the multicast transfer. In other words, the software needs to perform completion check each time the multicast transfer is performed. For this reason, operation of the software becomes complicated.
The third problem is that the software managing the memories in the respective data transfer destinations cannot individually check completion of the multicast transfer. The software which has performed a multicast transfer needs to notify the other software of the completion of the multicast transfer.
As a related technique, Japanese Patent Publication JP-2002-324013P (Patent Document 2) discloses a reception-side apparatus of a data transfer system. In this related technique, the number of pieces of received data is checked following reception of a single packet of data. When the number of pieces of data is correct, the data is stored in a memory and processing is repeated until reception of all the pieces of data is finished. When the number of pieces of data is wrong, retransmitting of identical data is requested to a transmitting-side unit. After resent data is received, the number of pieces of the resent data is checked again. When the number of pieces of the recent data is correct, the data is stored in the memory. When the number of pieces of the resent data is wrong on the other hand, a reset command is sent to the transmitting-side unit by using a method different from a packet method. After transmitting a reset command, error handling is performed and the processing is ended.